Skip to content

Unpin concurrent-ruby and update to 1.3.7 (security) - #85

Merged
JuanVqz merged 1 commit into
mainfrom
security/unpin-concurrent-ruby
Jul 9, 2026
Merged

Unpin concurrent-ruby and update to 1.3.7 (security)#85
JuanVqz merged 1 commit into
mainfrom
security/unpin-concurrent-ruby

Conversation

@JuanVqz

@JuanVqz JuanVqz commented Jul 9, 2026

Copy link
Copy Markdown
Member

What

Security fix: unpin concurrent-ruby (< 1.3.5) and update to >= 1.3.7 (resolves to 1.3.7).

Why

The < 1.3.5 ceiling was added in the Rails 6.1 era (commit 76656e2) to guard the concurrent-ruby 1.3.5 change that dropped its logger dependency and broke Rails < 7.1. On Rails 8.1 that guard is obsolete — and the ceiling was actively pinning the app to 1.3.4, which carries CVE-2026-54904 / -54905 / -54906 (fixed in 1.3.7). So the pin was doing net harm: no longer protecting anything, and holding three CVEs open.

Changes

  • Gemfile: replaced gem "concurrent-ruby", "< 1.3.5" with a documented >= 1.3.7 security floor (comment explains the obsolete guard + the CVEs)
  • Both Gemfile.lock and the dual-boot Gemfile.next.lock updated (1.3.4 → 1.3.7)
  • Used --conservative so nothing else moved (rack stays 2.x)

Verification (local)

  • bundle-audit: concurrent-ruby advisories cleared (no longer flagged)
  • App boots on concurrent-ruby 1.3.7
  • Test suite: 16 runs, 52 assertions, 0 failures, 0 errors, 0 skips — the lifted guard causes no regression on Rails 8.1
  • rubocop clean (exact CI config), reek clean

Note

This clears the last of the security advisories in the audit except webrick (transitive via rackup, no upstream patch yet, low exposure since puma serves production). The puma CVEs are handled in a separate PR.

@JuanVqz JuanVqz self-assigned this Jul 9, 2026
The `< 1.3.5` ceiling was added in the Rails 6.1 era (commit 76656e2) to
guard the concurrent-ruby 1.3.5 change that dropped its `logger` dependency
and broke Rails < 7.1. On Rails 8.1 that guard is obsolete, and the ceiling
was actively holding the app on 1.3.4, which carries CVE-2026-54904/5/6
(fixed in 1.3.7).

Replaced the ceiling with a documented `>= 1.3.7` security floor. Used
--conservative so nothing else moved (rack stays 2.x). Both lockfiles updated.

Verified locally: bundle-audit no longer flags concurrent-ruby; app boots on
1.3.7; test suite green (16 runs, 52 assertions, 0 failures); rubocop + reek
clean.
@JuanVqz
JuanVqz force-pushed the security/unpin-concurrent-ruby branch from 3b93b3e to 53f25b0 Compare July 9, 2026 05:12
@JuanVqz
JuanVqz marked this pull request as ready for review July 9, 2026 05:12
@JuanVqz
JuanVqz merged commit 1e8d5fc into main Jul 9, 2026
@JuanVqz
JuanVqz deleted the security/unpin-concurrent-ruby branch July 9, 2026 05:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant